package com.desay.pangoo.itmt.controller.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.List;
import java.util.Set;

/**
 * 工作组技术分类:技术相信信息
 *
 * @author uidq1163 on [2022年09月27日上午15:16:03]
 * @Modified By： [修改人] on [修改日期] for [修改说明]
 */
@Data
@ApiModel(value = "技术项目信息管理")
public class TechProjectInfoVo {

	@ApiModelProperty(value = "主键ID")
	private Long id;

	@ApiModelProperty(value = "主键ID")
	private Long parentId;

	/**
	 * 技术分类id
	 */
	@ApiModelProperty(value = "技术分类ID")
	private Long techClassId;

	/**
	 * 提案申请ID
	 */
	@ApiModelProperty(value = "提案申请ID")
	private Long techOnlineReviewId;

	/**
	 * 技术编号 50
	 */
	@ApiModelProperty(value = "技术编号")
	private String techPtn;

	/**
	 * 研究形式 255
	 */
	@ApiModelProperty(value = "研究形式")
	private String researchForms;

	/**
	 * 技术名称 1000
	 */
	@ApiModelProperty(value = "技术名称")
	private String techName;

	/**
	 * 子技术 255
	 */
	@ApiModelProperty(value = "子技术")
	private String subsidiary;

	/**
	 * 说明
	 */
	@ApiModelProperty(value = "说明")
	private String description;

	/**
	 * 技术等级
	 */
	@ApiModelProperty(value = "技术等级：核心，关键，通用，一般")
	@NotNull(message = "核心:1，关键:2，通用:3，一般:4")
	private Integer techLevel;

	/**
	 * 优先级 50
	 */
	@ApiModelProperty(value = "优先级 ")
	private String priority;

	/**
	 * 项目对应的时间线状态
	 */
	@ApiModelProperty(value = "项目对应的时间线状态")
	private Set<TechYearQuarterVo> techYearQuarters;

	/**
	 * 量化指标 255
	 */
	@ApiModelProperty(value = "量化指标")
	private String quantitativeIndicators;

	/**
	 * TMT 评审 50
	 */
	@ApiModelProperty(value = "TMT 评审")
	private String tMTApproval;

	/**
	 * 技术状态 50
	 */
	@ApiModelProperty(value = "技术状态")
	private String maturity;

	/**
	 * 需求来源 50
	 */
	@ApiModelProperty(value = "需求来源")
	private String requirementSource;

	/**
	 * 开发负责人 50
	 */
	@ApiModelProperty(value = "开发负责人")
	private String developedBy;

	/**
	 * 设备需求 255
	 */
	@ApiModelProperty(value = "设备需求")
	private String toolsEquipment;

	/**
	 * 资源需求(人月）
	 */
	@ApiModelProperty(value = "资源需求(人月）")
	private Float resourceNeeded;

	@ApiModelProperty(value = "数据版本号")
	private Long version;

	/**
	 * 课题规划费用预算
	 */
	@ApiModelProperty(value = "课题规划费用预算")
	private Float planBudgeting;

	/**
	 * 课题规划人力预算：折换成钱
	 */
	@ApiModelProperty(value = "课题规划人力预算：折换成钱")
	private Float humanBudgeting;

	/**
	 * '总预算
	 */
	@ApiModelProperty(value = "总预算")
	private Float budgeting;

	@ApiModelProperty(value = "课题对应平台id")
	private List<Long> platformIds;

	/**
	 * 开发责任主体
	 */
	@ApiModelProperty(value = "开发责任主体")
	private Set<Long> dutyBuss;

	/**
	 * 相关BU
	 */
	@ApiModelProperty(value = "相关BU")
	private Set<Long> relevanceBuss;

	@ApiModelProperty(value = "ALM需求编号")
	private String almCode;
	/**
	 * 技术成熟度
	 */
	@ApiModelProperty(value = "技术成熟度")
	private String techMaturity;

	@ApiModelProperty(value = "重点项目(确保成功率)")
	private Boolean isMajorProject;

	/**
	 * 技术交付评审
	 */
	@ApiModelProperty(value = "技术交付评审")
	private String deliveryReview;

	@ApiModelProperty(value = "Trinity项目信息")
	private TechRefProjectVo project;
	@ApiModelProperty(value = "专利信息")
	private TechRefPatentVo patent;
}
